package ACWing.mathematicalknowledge.约数;
//870. 约数个数

import java.util.*;

/**
 * @author :chenjie
 * @date :Created 2023/1/10 20:17
 */
public class Divisor {
    static int mod= 1000000007;
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        Map<Integer,Integer> map=new HashMap<>();
        while (n-->0){
            int x=sc.nextInt();
            for(int i = 2; i <= x / i; ++i){
                while(x % i == 0){
                    map.put(i, map.getOrDefault(i, 0) + 1);
                    x /= i;
                }
            }
            if(x > 1)map.put(x, map.getOrDefault(x, 0) + 1);

        }
        long res = 1;
        int mod = (int)1e9 + 7;
        for(Integer a: map.keySet()){



            long sum = 0;
            int k = map.get(a);

//          long sum = 1;
//          while(k-- > 0) sum = (sum * a + 1) % mod;  //求出a^k + a^(k-1) + ... + a^0

            for(int i = 0; i <= k; i++){
                long pow = 1; int tmp = i;
                while(tmp-- > 0) pow = pow * a % mod;
                sum = (sum + pow) % mod;
            }
            res = res * sum % mod;
        }
        System.out.println(res);

    }
}
